The present invention relates generally to processing of spread spectrum signals and other types of data. More particularly the invention relates to processing digitized precorrelation navigation satellite signal data (dF), and to processing alternative data and/or signals (DA) relating to at least one function being uncorrelated with said satellite signal data.
Spread spectrum transmission solutions are becoming increasingly important, for instance in global navigation satellite systems (GNSS). Presently, the Global Positioning System (GPS; U.S. Government) is the dominant system. However, alternative systems are expected to gain increased importance in the future. So far, the Global Orbiting Navigation Satellite System (GLONASS; Russian Federation Ministry of Defense) and the Galileo system (the European programme for global navigation services) constitute the major alternative GNSSs. Various systems also exist for enhancing the coverage, the availability and/or the quality of at least one GNSS in a specific region. The Quasi-Zenith Satellite System (QZSS; Advanced Space Business Corporation in Japan), the Wide Area Augmentation System (WAAS; The U.S. Federal Aviation Administration and the Department of Transportation) and the European Geostationary Navigation Overlay Service (EGNOS; a joint project of the European Space Agency, the European Commission and Eurocontrol—the European Organization for the Safety of Air Navigation) represent examples of such augmentation systems for GPS, and in the latter case GPS and GLONASS.
A programmable software receiver solution is generally desired because it enables processing of many signal formats in one processor, e.g. a CPU (central processing unit) or a DSP (digital signal processor). In this case, it is straightforward to adapt the signal processing principles to a plurality of signal formats. A software-based GNSS receiver is also advantageous in that this kind of receiver may coexist efficiently with other types of signal receivers, signal processing devices and/or software applications, for example in a laptop computer, a mobile telephone, or a PDA (Personal Digital Assistant). Moreover, a software receiver generally provides a cost-efficient and power-efficient implementation.
U.S. Pat. No. 6,002,363 describes a combined apparatus including a GPS receiver and an integrated communication receiver, e.g. representing a cellular phone. Here, a single digital processor is shared between functions related to processing of GPS signals and functions related to processing of communication signals. To facilitate the use of shared circuitry, it is proposed that the GPS operation and the communications reception/transmission operation be performed at different times. However, no efficient solution for contemporaneous use of the single processor is described.
Some recent communication devices contain multiple processors. In these devices, even more efficient data and signal processing can be achieved by treating each processing task in a manner being optimal with respect to the characteristics of the task. This results in efficient use of available power, which in turn leads to comparatively low power consumption. This characteristic is key in portable devices having limited battery resources, e.g. laptop computers, mobile telephones and PDAs. Hence, it is advantageous to integrate a software-based GNSS receiver into a multiple processor design, wherein the processing resources are shared with other types of software functions.
However, attaining such integration is challenging due to (a) the demanding real time requirements of the GNSS signal processing and (b) the inherently unpredictable load associated with this processing. The challenges of integration are further complicated because the alternative functions also generate processing loads, which may be unpredictable and typically vary significantly over time. This problem becomes especially accentuated if the design includes multiple processing cores whose performance profiles may be differently well suited for different types of processing tasks.
Generally, the question of performing software operations on a platform including multiple processing elements is termed ‘load balancing’. The prior art in this area includes several solutions for balancing load between two or more computers. U.S. Pat. No. 6,298,370 and the published US patent application No. 2005/0081181 represent examples of designs in this category. In the area of single-device implementations, the U.S. Pat. No. 6,725,354 presents a solution in which an adequate processing block is selected based on whether a processing task to be performed involves execution of fixed-point instructions or floating point instructions. Nevertheless, since all the prior approaches fail to address the strict real-time requirements of GNSS processing, none of these allows a software-implemented GNSS receiver to coexist with at least one function being uncorrelated thereto in a multiple processor environment.